Many new computing applications involve the generation and transmission of data from a group of sensor devices to a remote “sink” node, where such data is aggregated and analyzed. Such applications are becoming common in a variety of remote monitoring scenarios, such as healthcare (where wearable sensors record and transmit various biometric measures of an individual), vehicular telematics (where on-board sensors measure various vehicular parameters and transmit them back to a central diagnostic server) and intelligent transportation systems (where highway sensors periodically record traffic conditions).
Such data gathering systems have two important goals or concerns. First, as many of these sensor devices are resource-constrained themselves (e.g., operate on batteries), the system should minimize the communication and/or the data collection overhead, helping to reduce the energy expenditure of such devices. Second, many of these devices are not just reporting nodes, but also possess a fair degree of processing power and local intelligence. Architecturally, such data collection systems comprise a set of client sensor devices that are connected (often using a wireless communications infrastructure) to a remote sink node (or server), wherein this sink node is a part of an existing information technology infrastructure.
It would be desirable for the system to allow these sensor devices to appropriately adapt their behavior without requiring significant computational or communication complexity at the sensor or client devices, even in scenarios where the devices are occasionally disconnected from a communication infrastructure and thus not necessarily communicating with the remote server.